

const express = require(`express`)

const path = require(`path`)


const app = express()


app.use(express.urlencoded())
app.use(express.json())


app.use((req, res, next) => {


  /* 
Access to XMLHttpRequest at 'http://127.0.0.1:3000/cors?userId=001' from origin 'http://127.0.0.1:14994' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
访问位于'http://127.0.0.1:3000/cors?userId=001'从原点'http://127.0.0.1:14994“”已被CORS策略阻止：请求的资源上不存在“Access Control Allow Origin”标头。
 
*/
  //所有的请求都允许跨域
  res.set("Access-Control-Allow-Origin", "*")
  //限定网站
  // res.set("Access-Control-Allow-Origin", "http://127.0.0.1:14994")

  // //限制网站集群
  // let arr = ["http://127.0.0.1:2930", "http://127.0.0.1:14994", "http://127.0.0.1:14995", "http://127.0.0.1:14996"]
  // //请求来源地址
  // console.log(req.headers.origin);
  // // console.log(res);
  // //看数组是不是有 请求的来源的地址
  // if (arr.includes(req.headers.origin)) {
  //   //有 这 服务器 响应 响应体中 的响应头
  //   res.set("Access-Control-Allow-Origin", req.headers.origin)

  // }


  //取数据


  next()
})


app.get("/jsonp", (req, res) => {


  let data = {
    name: "xiaoA"
  }

  console.log(req.query.callback);
  //拿名字
  // let name = req.query.callback


  //实现了传输数据通过回调函数 和script 标签src属性

  res.send(`${req.query.callback}(${JSON.stringify(data)})`)

})


app.get("/cors", (resquest, response) => {

  // console.log(resquest.query);
  // 设置cors响应头：把跨域和同源的权限给开起来
  response.set('Access-Control-Allow-Origin','*')



  //设置验证凭证token
  //  const tok = request.headers.tok

  //  console.log(request.headers.tok);






  const {
    // name,
    // age,
    // sex
    userId
  } = resquest.query;
  console.log(resquest.query);



  //错误优先
  // if(!tok){

  //   return response.send(
  //     {
  //       code:10003,
  //       msg:`没有权限`,
  //       data:{Number:1}
  //     }
  //   )
  // }







  // response.send(
  //   {
  //     code:10001,
  //     msg:`增加失败`,
  //     data:null
  //   }
  // )


  if (userId !== "001") {

    return response.send(
      {
        code: 10001,
        msg: `查询失败`,
        data: null
      }
    )

  }

  response.send({
    code: 10000,
    msg: `查询成功`,
    data: {
      name: "Firo",
      age: 18,
      sex: `🚹`
    }
  })



})

//静态资源
app.get("/1", (req, res) => {

  const filePath = path.resolve(__dirname, "./cors跨域.html")
  res.sendFile(filePath)
})

app.listen(3000, () => {
  console.log(`success`);
})